#!/usr/bin/env python3
"""
Windows 下 SVD 模型下载脚本
支持官方源和镜像源
"""

import os
import sys

def download_with_official():
    """使用官方源下载"""
    print("使用官方 HuggingFace 下载...")
    print("="*50)
    
    commands = """
# 请在命令行中执行以下命令：

# 1. 安装 huggingface-hub
pip install huggingface-hub

# 2. 下载模型
huggingface-cli download stabilityai/stable-video-diffusion-img2vid-xt --local-dir ./svd_model --local-dir-use-symlinks False

# 3. 打包（可选）
# Windows 可以使用 7-Zip 或直接复制文件夹
"""
    print(commands)

def download_with_mirror():
    """使用镜像源下载"""
    print("使用镜像源下载（国内推荐）...")
    print("="*50)
    
    # 创建Python下载脚本
    script = """
import os
from huggingface_hub import snapshot_download

# 设置镜像
os.environ['HF_ENDPOINT'] = 'https://hf-mirror.com'

print("开始从镜像站点下载...")
try:
    snapshot_download(
        repo_id="stabilityai/stable-video-diffusion-img2vid-xt",
        local_dir="./svd_model",
        local_dir_use_symlinks=False,
        endpoint="https://hf-mirror.com"
    )
    print("✅ 下载成功！")
    print("模型保存在: ./svd_model")
except Exception as e:
    print(f"❌ 下载失败: {e}")
    print("请尝试其他镜像或手动下载")
"""
    
    # 保存为临时脚本
    with open("temp_download.py", "w") as f:
        f.write(script)
    
    print("已创建下载脚本: temp_download.py")
    print("执行命令: python temp_download.py")
    
    # 尝试自动执行
    try:
        import subprocess
        subprocess.run([sys.executable, "temp_download.py"])
    except:
        print("请手动执行: python temp_download.py")

def main():
    print("="*60)
    print("  SVD 模型下载工具")
    print("="*60)
    print()
    print("选择下载源：")
    print("1. 官方 HuggingFace（需要稳定的国际网络）")
    print("2. HF-Mirror 镜像（国内推荐）")
    print("3. 显示手动下载地址")
    print()
    
    choice = input("请选择 (1/2/3): ").strip()
    
    if choice == "1":
        download_with_official()
    elif choice == "2":
        download_with_mirror()
    elif choice == "3":
        print("\n手动下载地址：")
        print("-"*50)
        print("官方地址：")
        print("https://huggingface.co/stabilityai/stable-video-diffusion-img2vid-xt")
        print("\n镜像地址（国内）：")
        print("https://hf-mirror.com/stabilityai/stable-video-diffusion-img2vid-xt")
        print("\n主要文件：")
        print("1. UNet (5GB): .../unet/diffusion_pytorch_model.fp16.safetensors")
        print("2. VAE (335MB): .../vae/diffusion_pytorch_model.fp16.safetensors")
        print("3. Image Encoder (1.2GB): .../image_encoder/model.fp16.safetensors")
    else:
        print("无效选择")

if __name__ == "__main__":
    main()
